<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>query_script_statements: common_schema documentation</title>
	<meta name="description" content="query_script_statements: common_schema" />
	<meta name="keywords" content="query_script_statements: common_schema" />
	<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>
	<div id="main">
		<div id="header">
			<h1>common_schema</h1> <strong>2.2</strong> documentation
			<div class="subtitle">DBA's framework for MySQL</div>
		</div>
		<div id="contentwrapper">
			<div id="content">
				<h2><a href="query_script_statements.html">query_script_statements</a></h2>	

<p>
QueryScript Statements: operations on data, schema or flow.
</p>

<h3>SYNOPSIS</h3>
<p>
<blockquote><pre>statement;
{
    statement;
    statement;
}
</pre></blockquote>
<a href="#qs_statements">List of QueryScript statements</a>
</p>

<h3>DESCRIPTION</h3>
<p> 
<i>Statements</i> are actions to be taken. QueryScript supports statements of the following types:
<ul>
	<li>SQL statements: the usual DML (SELECT, INSERT, ...), DML (CREATE, ALTER, ...) and
		other various commands (KILL, GRANT, ...)
	</li>
	<li>Script statements: statements which affect flow and behavior of script</li>
	<li>Statement blocks</li>
</ul>
</p>
<p>
<h4>SQL statements</h4>
<p>
Most SQL statements which are accepted by MySQL are also accepted by QueryScript.
These include INSERT, UPDATE, DELETE, SELECT, CREATE, DROP, ALTER, SET, FLUSH, and more.
</p>
<p>
Among the SQL statements which are in particular <i>not allowed</i> within QueryScript are:
<ul>
	<li>Dynamic SQL statements (PREPARE, EXECUTE, DEALLOCATE)</li>
	<li>Plugin statements (INSTALL, UNINSTALL)</li>
	<li>Stored routines statements (DECLARE, LOOP, ...), for which QueryScript provides substitutes.</li>
</ul> 
Transaction statements are handled by the QueryScript engine, as described following.
</p>
<p>

Otherwise, any SQL statement which is not allowed to be executed via dynamic SQL cannot be executed via
QueryScript.
</p>
<p>
Execution of a SQL statement modifies the <strong>$rowcount</strong> and <strong>$found_rows</strong> variable. 
See <a href="query_script_variables.html#builtin">built-in variables</a>.
</p>

<a name="qs_statements"></a>
<h4>QueryScript statements</h4>
<p>
QueryScript adds and recognizes the following statements: 
<ul>
	<li><a href="query_script_echo.html">echo</a></li>
	<li><a href="query_script_eval.html">eval</a></li>
	<li><a href="query_script_input.html">input</a></li>
	<li><a href="query_script_pass.html">pass</a></li>
	<li><a href="query_script_report.html">report</a></li>
	<li><a href="query_script_sleep.html">sleep</a></li>
	<li><a href="query_script_throttle.html">throttle</a></li>
	<li><a href="query_script_throw.html">throw</a></li>
	<li><a href="query_script_var.html">var</a></li>
</ul>
And the following flow control statements : 
<ul>
	<li><a href="query_script_break.html">break</a></li>
	<li><a href="query_script_return.html">return</a></li>
</ul>
In addition, the transaction statements <strong>start transaction</strong>, 
<strong>begin</strong>, <strong>commit</strong>, <strong>rollback</strong>
are managed by QueryScript and delegated immediately to MySQL.
</p>


<h4>Statement blocks</h4>
<p>
  Statements can be grouped into blocks by using the curly braces, as follows:
<blockquote><pre>
{
    statement;
    statement;
}
</pre></blockquote>
The entire block is considered to be a statement, and is valid for use in flow control
structures, such as <a href="query_script_foreach.html">foreach</a>,
 <a href="query_script_if_else.html">if-else</a>,
<a href="query_script_while.html">while</a>,
<a href="query_script_loop_while.html">loop-while</a>.
</p>


<h4>Statement delimiters</h4>
<p>
QueryScript statements are terminates by a semicolon ("<strong>;</strong>"). The last query in a block or script can optionally <i>not</i> be terminated by the semicolon. 
Thus, the following are valid scripts:
<blockquote><pre>
    statement
</pre></blockquote>
<blockquote><pre>
    statement;
</pre></blockquote>
<blockquote><pre>
{
    statement;
    statement
}
</pre></blockquote>
A block statement (<strong>{...}</strong>) is not terminated by a delimiter.
There is no way to change the delimiter. In particular, QueryScript does <i>not</i> recognize the <i>DELIMITER</i> statement. 
</p>

<h4>Comments</h4>
<p>
Comments are allowed within QueryScript, as follows:
<ul>
	<li>Multi line comments are recognized by <strong>/* ... */</strong></li>
	<li>Single line comments are recognized by <strong>-- </strong>. Note that there is a space after the two dashes.</li>
</ul>
See following:
<blockquote><pre>
    set @x := 3;
    if (@x < 5 /* This is a comment */)
    {
      -- A single line comment
      select 'x is small';
    }
    else
    {
      /* Another comment, this
         time multiline */
      select 'x is large';
    }
</pre></blockquote>
</p>

<h3>SEE ALSO</h3>
<a href="query_script_expressions.html">expressions</a>

<h3>AUTHOR</h3>
Shlomi Noach


				<br/>
			</div>
			<div id="sidebarwrapper">
				<div id="search">
					Search online documentation
					<form id="search_form" name="search_form" method="GET" 
						action="http://www.google.com/search" 
						onsubmit="document.forms['search_form']['q'].value = 'site:http://common-schema.googlecode.com/svn/trunk/common_schema/doc/html/ '+document.forms['search_form']['search_term'].value;">
						<input type="text" name="search_term" value=""/>
						<input type="hidden" name="q" value=""/>
						<input type="submit" value="go"/>						
					</form>
				</div>
				<div id="menu">
					<ul>
						<li><a title="Introduction" href="introduction.html">Introduction</a></li>
						<li><a title="Documentation" href="documentation.html">Documentation</a></li>
						<li><a title="Download" href="download.html">Download</a></li>
						<li><a title="Install" href="install.html">Install</a></li>
						<li><a title="Risks" href="risks.html">Risks</a></li>
					</ul>						
					<h3>QUERY SCRIPT</h3>
					<ul>
						<li><a title="QueryScript" href="query_script.html">QueryScript</a></li>
						<li><a title="Execution" href="query_script_execution.html">Execution</a></li>
						<li><a title="Flow control" href="query_script_flow_control.html">Flow control</a></li>
						<li><a title="Statements" href="query_script_statements.html">Statements</a></li>
						<li><a title="Expressions" href="query_script_expressions.html">Expressions</a></li>
						<li><a title="Variables" href="query_script_variables.html">Variables</a></li>
					</ul>						
					<h3>DEBUG</h3>
					<ul>
						<li><a title="rdebug" href="rdebug.html">rdebug</a></li>
						<li><a title="rdebug API" href="rdebug_api.html">rdebug API</a></li>
						<li><a title="rdebug workflow" href="rdebug_workflow.html">Workflow</a></li>
					</ul>						
					<h3>ROUTINES</h3>
					<ul>
						<li><a title="Execution &amp; flow control" href="execution_routines.html">Execution & flow control</a></li>
						<li><a title="General" href="general_routines.html">General</a></li>
						<li><a title="Process" href="process_routines.html">Process</a></li>
						<li><a title="Query analysis" href="query_analysis_routines.html">Query analysis</a></li>
						<li><a title="Schema analysis" href="schema_analysis_routines.html">Schema analysis</a></li>
						<li><a title="Security" href="security_routines.html">Security</a></li>
						<li><a title="Text" href="text_routines.html">Text</a></li>
						<li><a title="Time &amp; date" href="temporal_routines.html">Time & date</a></li>
						<li><a title="Charting" href="charting_routines.html">Charting</a></li>
					</ul>
					<h3>VIEWS</h3>
					<ul>
						<li><a title="Schema analysis" href="schema_analysis_views.html">Schema analysis</a></li>
						<li><a title="Data dimension" href="data_dimension_views.html">Data dimension</a></li>
						<li><a title="Process" href="process_views.html">Process</a></li>
						<li><a title="Security" href="security_views.html">Security</a></li>
						<li><a title="Monitoring" href="monitoring_views.html">Monitoring</a></li>
						<li><a title="InnoDB Plugin" href="innodb_plugin_views.html">InnoDB Plugin</a></li>
						<li><a title="Percona server" href="percona_server_views.html">Percona Server</a></li>
						<li><a title="TokuDB" href="tokudb_views.html">TokuDB</a></li>
					</ul>						
					<h3>DATA</h3>
					<ul>
						<li><a title="tables" href="tables.html">Tables</a></li>
						<li><a title="variables" href="variables.html">Variables</a></li>
					</ul>						
					<h3>META</h3>
					<ul>
						<li><a title="Help" href="help.html">help</a></li>
						<li><a title="Metadata" href="metadata.html">metadata</a></li>
						<li><a title="status" href="status.html">status</a></li>
					</ul>						
				</div>
			</div>	
			<div class="clear">&nbsp;</div>
			
			<div id="footnote" align="center">
				<a href="">common_schema</a> documentation
			</div>
		</div>
	</div>
</body>
</html>
